1
|
|
|
/*! |
2
|
|
|
* JavaScript Cookie v2.1.4 |
3
|
|
|
* https://github.com/js-cookie/js-cookie |
4
|
|
|
* |
5
|
|
|
* Copyright 2006, 2015 Klaus Hartl & Fagner Brack |
6
|
|
|
* Released under the MIT license |
7
|
|
|
*/ |
8
|
|
|
;(function (factory) { |
9
|
|
|
var registeredInModuleLoader = false; |
10
|
|
|
if (typeof define === 'function' && define.amd) { |
|
|
|
|
11
|
|
|
define(factory); |
12
|
|
|
registeredInModuleLoader = true; |
13
|
|
|
} |
14
|
|
|
if (typeof exports === 'object') { |
15
|
|
|
module.exports = factory(); |
16
|
|
|
registeredInModuleLoader = true; |
17
|
|
|
} |
18
|
|
|
if (!registeredInModuleLoader) { |
19
|
|
|
var OldCookies = window.Cookies; |
20
|
|
|
var api = window.Cookies = factory(); |
21
|
|
|
api.noConflict = function () { |
22
|
|
|
window.Cookies = OldCookies; |
23
|
|
|
return api; |
24
|
|
|
}; |
25
|
|
|
} |
26
|
|
|
}(function () { |
27
|
|
|
function extend () { |
28
|
|
|
var i = 0; |
29
|
|
|
var result = {}; |
30
|
|
|
for (; i < arguments.length; i++) { |
31
|
|
|
var attributes = arguments[ i ]; |
32
|
|
|
for (var key in attributes) { |
|
|
|
|
33
|
|
|
result[key] = attributes[key]; |
34
|
|
|
} |
35
|
|
|
} |
36
|
|
|
return result; |
37
|
|
|
} |
38
|
|
|
|
39
|
|
|
function init (converter) { |
40
|
|
|
function api (key, value, attributes) { |
41
|
|
|
var result; |
42
|
|
|
if (typeof document === 'undefined') { |
43
|
|
|
return; |
|
|
|
|
44
|
|
|
} |
45
|
|
|
|
46
|
|
|
// Write |
47
|
|
|
|
48
|
|
|
if (arguments.length > 1) { |
49
|
|
|
attributes = extend({ |
50
|
|
|
path: '/' |
51
|
|
|
}, api.defaults, attributes); |
52
|
|
|
|
53
|
|
|
if (typeof attributes.expires === 'number') { |
54
|
|
|
var expires = new Date(); |
55
|
|
|
expires.setMilliseconds(expires.getMilliseconds() + attributes.expires * 864e+5); |
56
|
|
|
attributes.expires = expires; |
57
|
|
|
} |
58
|
|
|
|
59
|
|
|
// We're using "expires" because "max-age" is not supported by IE |
60
|
|
|
attributes.expires = attributes.expires ? attributes.expires.toUTCString() : ''; |
61
|
|
|
|
62
|
|
|
try { |
63
|
|
|
result = JSON.stringify(value); |
64
|
|
|
if (/^[\{\[]/.test(result)) { |
65
|
|
|
value = result; |
66
|
|
|
} |
67
|
|
|
} catch (e) {} |
|
|
|
|
68
|
|
|
|
69
|
|
|
if (!converter.write) { |
70
|
|
|
value = encodeURIComponent(String(value)) |
71
|
|
|
.replace(/%(23|24|26|2B|3A|3C|3E|3D|2F|3F|40|5B|5D|5E|60|7B|7D|7C)/g, decodeURIComponent); |
|
|
|
|
72
|
|
|
} else { |
73
|
|
|
value = converter.write(value, key); |
74
|
|
|
} |
75
|
|
|
|
76
|
|
|
key = encodeURIComponent(String(key)); |
77
|
|
|
key = key.replace(/%(23|24|26|2B|5E|60|7C)/g, decodeURIComponent); |
78
|
|
|
key = key.replace(/[\(\)]/g, escape); |
|
|
|
|
79
|
|
|
|
80
|
|
|
var stringifiedAttributes = ''; |
81
|
|
|
|
82
|
|
|
for (var attributeName in attributes) { |
|
|
|
|
83
|
|
|
if (!attributes[attributeName]) { |
84
|
|
|
continue; |
85
|
|
|
} |
86
|
|
|
stringifiedAttributes += '; ' + attributeName; |
87
|
|
|
if (attributes[attributeName] === true) { |
88
|
|
|
continue; |
89
|
|
|
} |
90
|
|
|
stringifiedAttributes += '=' + attributes[attributeName]; |
91
|
|
|
} |
92
|
|
|
return (document.cookie = key + '=' + value + stringifiedAttributes); |
93
|
|
|
} |
94
|
|
|
|
95
|
|
|
// Read |
96
|
|
|
|
97
|
|
|
if (!key) { |
98
|
|
|
result = {}; |
99
|
|
|
} |
100
|
|
|
|
101
|
|
|
// To prevent the for loop in the first place assign an empty array |
102
|
|
|
// in case there are no cookies at all. Also prevents odd result when |
103
|
|
|
// calling "get()" |
104
|
|
|
var cookies = document.cookie ? document.cookie.split('; ') : []; |
105
|
|
|
var rdecode = /(%[0-9A-Z]{2})+/g; |
106
|
|
|
var i = 0; |
107
|
|
|
|
108
|
|
|
for (; i < cookies.length; i++) { |
109
|
|
|
var parts = cookies[i].split('='); |
110
|
|
|
var cookie = parts.slice(1).join('='); |
111
|
|
|
|
112
|
|
|
if (cookie.charAt(0) === '"') { |
113
|
|
|
cookie = cookie.slice(1, -1); |
114
|
|
|
} |
115
|
|
|
|
116
|
|
|
try { |
117
|
|
|
var name = parts[0].replace(rdecode, decodeURIComponent); |
118
|
|
|
cookie = converter.read ? |
119
|
|
|
converter.read(cookie, name) : converter(cookie, name) || |
120
|
|
|
cookie.replace(rdecode, decodeURIComponent); |
121
|
|
|
|
122
|
|
|
if (this.json) { |
123
|
|
|
try { |
124
|
|
|
cookie = JSON.parse(cookie); |
125
|
|
|
} catch (e) {} |
|
|
|
|
126
|
|
|
} |
127
|
|
|
|
128
|
|
|
if (key === name) { |
129
|
|
|
result = cookie; |
130
|
|
|
break; |
131
|
|
|
} |
132
|
|
|
|
133
|
|
|
if (!key) { |
134
|
|
|
result[name] = cookie; |
|
|
|
|
135
|
|
|
} |
136
|
|
|
} catch (e) {} |
|
|
|
|
137
|
|
|
} |
138
|
|
|
|
139
|
|
|
return result; |
140
|
|
|
} |
141
|
|
|
|
142
|
|
|
api.set = api; |
143
|
|
|
api.get = function (key) { |
144
|
|
|
return api.call(api, key); |
145
|
|
|
}; |
146
|
|
|
api.getJSON = function () { |
147
|
|
|
return api.apply({ |
148
|
|
|
json: true |
149
|
|
|
}, [].slice.call(arguments)); |
150
|
|
|
}; |
151
|
|
|
api.defaults = {}; |
152
|
|
|
|
153
|
|
|
api.remove = function (key, attributes) { |
154
|
|
|
api(key, '', extend(attributes, { |
155
|
|
|
expires: -1 |
156
|
|
|
})); |
157
|
|
|
}; |
158
|
|
|
|
159
|
|
|
api.withConverter = init; |
160
|
|
|
|
161
|
|
|
return api; |
162
|
|
|
} |
163
|
|
|
|
164
|
|
|
return init(function () {}); |
165
|
|
|
})); |
166
|
|
|
|
This checks looks for references to variables that have not been declared. This is most likey a typographical error or a variable has been renamed.
To learn more about declaring variables in Javascript, see the MDN.